﻿using System;
using System.Collections.Generic;
using Orchard;
using Orchard.DisplayManagement;

namespace AMC.SubstitutionCache.Services
{
    /// <summary>
    /// Responsible for the initial rendering phase when a possible replacement shape has been found, firing events, and adding it to the current contexts 
    /// </summary>
    public interface ISubstitutionService : IDependency
    {
        bool IsRenderingEnabled { get; }

        Guid? RequestIdentifier { get; }

        SubstitutionContext this[string key] { get; }

        void EnableRendering();

        void TryAddToken(IShape shape);

        IEnumerable<SubstitutionContext> Items();
    }
}